code> '); } $ (문서) .ready (function () { $ ( '. openembed'). click (function () { generateCode (); var answerid = $ ( '. openembed'). attr ( 'id'); $ ( '# box'). show (); 거짓 반환; }); $ ( '# embed'). click (function (e) { e.stopPropagation () }); $ (문서) .click (function () { $ ( '# box'). hide () }); }); 내 마크 업은 다음과 같습니다. 삽입 삽입
2021-01-04 08:14:11
귀하의 문제는 여기에 있습니다. $ ( '. openembed') 일치하는 요소의 배열을 반환합니다. 대신 클릭 한 요소 만 선택해야합니다. $ ( '. openembed')는이 클래스가있는 모든 요소에 클릭 이벤트를 지정하면 올바르게 작동합니다. 그러나 반면에 어떤 것이 클릭되었는지 알 수 없습니다. 그러나 다행히도 핸들러 함수 click 본문에서 $ (this)를 호출 할 수 있습니다. $ (this)는 현재 (및 클릭 된 요소)를 반환합니다. // var answerid = $ ( '. openembed'). attr ( 'id'); // 잘못된 var answerid = $ (this) .attr ( 'id'); // 맞음 // 이제 generateCode를 호출 할 수 있습니다. generateCode (answerid); 또 다른 오류는 generateCode 함수의 본문입니다. 여기에서 선택한 요소의 ID를 전달해야합니다. 이것은 올바른 구현입니다. function generateCode (answerid) { if ($ ( '# embed input [name = "comments"] : checked'). length> 0 == true) { var comments = "& comments = 1"; } else { var comments = ""; } $ ( "# embedcode"). html ( '